home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
biz
/
swood
/
FWTabTools.lha
/
FWTabTools
/
FWCalcAddSpalte.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1998-01-04
|
3KB
|
160 lines
/* $VER: 0.15 , (04.01.1998), © by Thorsten Willert
Macro um Tabellenspalten zu addieren (den Inhalt
in Zahlen natürlich)
------------------------------------------------*/
ADDRESS = 'FinaW'
OPTIONS CACHE RESULTS
STATUS PORTNAME
FW = RESULT
ADDRESS = FW
SIGNAL ON BREAK_C
SIGNAL ON HALT
SIGNAL ON SYNTAX
/*-----------------------------------------------*/
RT.Version = "Version 0.15"
RT.Title = "FWAddSpalte"
RT.Para1 = "rt_pubscrname = FinalWriterPubScreen rt_topoffset = 50 rt_reqpos = reqpos_topleftwin"
RT.Copyright = "© 1997-98, by Thorsten Willert"
R = '0A'X
/*-----------------------------------------------*/
IF ~show('L',"rexxreqtools.library") THEN DO
IF ~addlib('rexxreqtools.library',0,-30,0) THEN DO
'ShowMessage 1 1 "Fehler ..." "Benötige RexxReqTools.library!" "" "Abbruch !!" "" ""'
EXIT 20
END
END
DO FOREVER
IF Info("_Berechnen|_Ende") == 0 THEN LEAVE
ADDRESS (FW)
GETDocItemPrefs Decimal
Punkt = result
result = ""
IF SetCursor() = 0 THEN ITERATE
CALL Addieren
TableSetActiveCell StartZeile StartSpalte
END
/*-----------------------------------------------*/
Ende:
EXIT
/*-----------------------------------------------*/
SetCursor:
ADDRESS(FW)
TableGetActiveCell
PARSE VAR RESULT Zeile Spalte
StartZeile = Zeile
StartSpalte = Spalte
IF Zeile = "" | Spalte = "" THEN /* Geht nicht über GetObjektType */
DO
CALL KeineTabelle
RETURN 0
END
TableGetRows
PARSE VAR RESULT Muell Zeilen
IF Zeile=Zeilen THEN Zeile=1
TableSetAvticeCell Zeile Spalte
RETURN 1
/*-----------------------------------------------*/
Addieren:
ADDRESS (FW)
i=1;Summand=0;Summe=0
DO FOREVER
i=i+1
TableSetActiveCell Zeile Spalte
SelectAll
Extract
Summand=COMPRESS(Result,'09'X'0A'X" ")
Summand2 = TRANSLATE( Summand,".","," )
IF ~DATATYPE( Summand2, "NUMERIC" ) = 0 THEN
DO
Justify Right
Summand=Summand2
IF Summand = "" THEN Summand = 0
END
ELSE Summand=0
Summe=Summe+Summand
IF Zeile=Zeilen-1 THEN LEAVE
Zeile=Zeile+1
END
TableSetActiveCell Zeilen Spalte
SelectAll
Justify Right
Clear
Style Bold
IF Punkt~="Period" THEN Summe=TRANSLATE(Summe,",",".")
Type Summe
RETURN
/*-----------------------------------------------*/
KeineTabelle:
rtezrequest("Zuerst eine Tabelle auswählen"||R||,
"und Cursor positioniern!","Weiter",RT.Title)
RETURN
/*-----------------------------------------------*/
Info:
PARSE ARG Taste1
res = rtezrequest(RT.Version||","||R||RT.Copyright||R||R||,
"Addiert Spalten ab Cursorposition.",Taste1,RT.Title,RT.Para1)
RETURN res
/*-----------------------------------------------*/
HALT:
BREAK_C:
rtezrequest("Macro wurde abgebrochen ... ","Weiter",RT.Title)
EXIT 10
/*-----------------------------------------------*/
SYNTAX:
IF RC = 47 THEN
rtezrequest("Fehler!","_Weiter|_Hilfe",RT.Title)
IF rtresult == 0 THEN CALL Info( "_Aha" )
EXIT 10